--通信服务地址
ip= "125.69.68.37"
--通信服务端口
port = 8877
--连接到通信前置服务
ret = CONNECT(ip,port)        --建立连接
-------------------------------------------  
--签到报文 :
--TPDU
TPDU = '6081850007'            
--固定金融报文
SSSS = '603100313131002406000020000000C000000000143836323939383233383632353130313439303035303032'

--把 如"1234"转为"31323334"
function bin2hex(s)
    s=string.gsub(s,"(.)",function (x) return string.format("%02X",string.byte(x)) end)
    return s
end

SLEN = '30303030303030313238'  --后续长度
SNAM = '676170737C'            --平台名称：gaps|  → 676170737C
SCOD = '323030317C'            --交易代码：2001|  → 323030317C

check_code   = '69AEE21F50A8D530' --认证码
exchange_key = 'F921F112C4CA3095' --交换密钥

RCODE = DES_Enc(exchange_key,check_code)
print('rcode is:')
print(RCODE)
--招行签到报文
TDCODE =  bin2hex('10')                 --交易代码
MTYPE = '30304E50'                      --商户类型
MCODE = bin2hex('028816')               --商户代码
RCODE = bin2hex(RCODE)                  --认证码
SNUM  = bin2hex('           01237')     --流水
 
DATA = TDCODE..MTYPE..MCODE..RCODE..SNUM
DBL = string.format("%010d",string.len(DATA)/2)
DBL = bin2hex(DBL)
--print(DBL)
TXLEN =  string.format("%04x",string.len(TPDU..SSSS..SLEN..SNAM..SCOD..DBL..DATA))

TX = TXLEN..TPDU..SSSS..SLEN..SNAM..SCOD..DBL..DATA
--print(TX)
--报文总长度（2字节BCD）+ TPDU（11位）+固定金融报文+后续报文总长度（10字节）+平台名称(小写字母)|交易代码（2001）|招商完整报文 
--调用接口TxData(hex),16进制发送,如send:'123456' <--> send:0x12 0x34 0x56
ret,rcv = TxData(TX)     
print(rcv)


--名单查询报文

--报文总长度（2位BCD）+ TPDU（11位）+固定金融报文+一卡通交易报文（转16进制后组合报文上送）。

CXVER = '0000000029GAPS|1001|00000001|20160901|`'

CXVER = bin2hex(CXVER)
print('CXVER is'.CXVER) 
--名单下载报文